package com.community.shop.converter;

import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.converters.ReadConverterContext;
import com.alibaba.excel.converters.WriteConverterContext;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.data.WriteCellData;

/**
 * 商品sku 状态 自定义类型转换器
 */
public class CustomStatusConverter implements Converter<Integer> {

    @Override
    public Class<?> supportJavaTypeKey() {
        return String.class;
    }

    @Override
    public CellDataTypeEnum supportExcelTypeKey() {
        return CellDataTypeEnum.STRING;
    }

    /**
     * 这里读的时候会调用
     *
     * @param context
     * @return
     */
    @Override
    public Integer convertToJavaData(ReadConverterContext context) {
        Integer flag = 0;

        // 从 excel 中读取的数据是 “上架”
        if(context.getReadCellData().getStringValue().equals("上架")){
            // 数据库接收 0
            flag = 0;
        }
        if(context.getReadCellData().getStringValue().equals("下架")){
            flag = 1;
        }
        if(context.getReadCellData().getStringValue().equals("已删除")){
            flag = 2;
        }

        return flag;
    }

    /**
     * 这里是写的时候会调用
     *
     * @return
     */
    @Override
    public WriteCellData<?> convertToExcelData(WriteConverterContext<Integer> context) {
        String flag = "";
        if(context.getValue().equals(0)){
            flag = "上架";
        }
        if(context.getValue().equals(1)){
            flag = "下架";
        }
        if(context.getValue().equals(2)){
            flag = "已删除";
        }
        return new WriteCellData<String>(flag);
    }

}
